package org.linlinjava.litemall.admin.util;

import org.apache.shiro.SecurityUtils;
import org.apache.shiro.subject.Subject;
import org.linlinjava.litemall.core.util.YwcgEnumUtil;
import org.linlinjava.litemall.db.domain.LitemallAdmin;
import org.springframework.util.StringUtils;

import java.util.Arrays;

/**
 * @Author: Daisen.Z
 * @Date: 2021/6/3 21:34
 * @Version: 1.0
 * @Description:
 */
public class AdminCheck {

    // 校验是否是超级管理员,是则返回null，不是则返回用户名字（用于查询与自己关联的项目）
    public static String isSuperUser() {
        // 校验是否是超级管理员，如果不是需要处理
        // 获取登陆用户信息
        Subject currentUser = SecurityUtils.getSubject();
        LitemallAdmin admin = (LitemallAdmin) currentUser.getPrincipal();
        // 如果是超级管理员就返回空
        if (Arrays.asList(admin.getRoleIds()).contains(YwcgEnumUtil.AdminRoleNameCode.FIRST.getCode())) {
            return null;
        }
        // 不是就返回超管名字
        String peopleName = admin.getPeopleName();
        if (StringUtils.isEmpty(peopleName)) {
            return admin.getUsername();
        }
        return peopleName;
    }


    // 获取登陆的用户名字
    public static String getUserName() {
        // 校验是否是超级管理员，如果不是需要处理
        // 获取登陆用户信息
        Subject currentUser = SecurityUtils.getSubject();
        LitemallAdmin admin = (LitemallAdmin) currentUser.getPrincipal();
        return admin.getPeopleName();
    }

}
